Software products, such as IBM's Customer Information Control System (CICS) product suite provides sample copybooks in several programming languages, such as COBOL, Assembler and PL/1. A copybook provides data definitions for a program. For example, a program when executing may require a user to input their name and address. A copybook defines what type of data is required when inputting a name and address, i.e., name, first line of address and for each of these field names, the data type (character or integer) and the length of the input field. Each different type of programming language would require their own copybook because each programming language is unique and has its own constraints, constructs and data type representation, etc.
A copybook can also be used to map equivalent data structures in non-proprietary business languages, such as, WSDL (Web Service Definition Language) for web service operation to and from legacy systems. A proportion of copybooks are intended to be used to map data structures in order to access the data within the product, so that the offset of each data item within each equivalent data structure must be consistent across all the different types of programming language used by the product. Although compilers are able to provide maps of generated data structures, large data structures need meticulous analysis to ensure that the offsets of all data items are the same. Failure to spot an inconsistency error can lead to incorrect data being read by a program and storage being overlaid with invalid data.